package agenPro;

 
//--AgentGen BEGIN=_BEGIN
//--AgentGen END

import org.snmp4j.smi.*;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.agent.*;
import org.snmp4j.agent.mo.*;
import org.snmp4j.agent.mo.snmp.*;
import org.snmp4j.agent.mo.snmp.smi.*;
import org.snmp4j.agent.request.*;
import org.snmp4j.log.LogFactory;
import org.snmp4j.log.LogAdapter;
import org.snmp4j.agent.mo.snmp.tc.*;


//--AgentGen BEGIN=_IMPORT
//--AgentGen END

public class SNMPv2Mib 
//--AgentGen BEGIN=_EXTENDS
//--AgentGen END
implements MOGroup 
//--AgentGen BEGIN=_IMPLEMENTS
//--AgentGen END
{

  private static final LogAdapter LOGGER = 
      LogFactory.getLogger(SNMPv2Mib.class);

//--AgentGen BEGIN=_STATIC
//--AgentGen END

  // Factory
  private MOFactory moFactory = 
    DefaultMOFactory.getInstance();

  // Constants 

  /**
   * OID of this MIB module for usage which can be 
   * used for its identification.
   */
  public static final OID oidSNMPv2Mib =
    new OID(new int[] { 1,3,6,1,6,3,1 });

  // Identities
  // Scalars
  public static final OID oidSysDescr = 
    new OID(new int[] { 1,3,6,1,2,1,1,1,0 });
  public static final OID oidSysObjectID = 
    new OID(new int[] { 1,3,6,1,2,1,1,2,0 });
  public static final OID oidSysUpTime = 
    new OID(new int[] { 1,3,6,1,2,1,1,3,0 });
  public static final OID oidSysContact = 
    new OID(new int[] { 1,3,6,1,2,1,1,4,0 });
  public static final OID oidSysName = 
    new OID(new int[] { 1,3,6,1,2,1,1,5,0 });
  public static final OID oidSysLocation = 
    new OID(new int[] { 1,3,6,1,2,1,1,6,0 });
  public static final OID oidSysServices = 
    new OID(new int[] { 1,3,6,1,2,1,1,7,0 });
  public static final OID oidSysORLastChange = 
    new OID(new int[] { 1,3,6,1,2,1,1,8,0 });
  public static final OID oidSnmpInPkts = 
    new OID(new int[] { 1,3,6,1,2,1,11,1,0 });
  public static final OID oidSnmpOutPkts = 
    new OID(new int[] { 1,3,6,1,2,1,11,2,0 });
  public static final OID oidSnmpInBadVersions = 
    new OID(new int[] { 1,3,6,1,2,1,11,3,0 });
  public static final OID oidSnmpInBadCommunityNames = 
    new OID(new int[] { 1,3,6,1,2,1,11,4,0 });
  public static final OID oidSnmpInBadCommunityUses = 
    new OID(new int[] { 1,3,6,1,2,1,11,5,0 });
  public static final OID oidSnmpInASNParseErrs = 
    new OID(new int[] { 1,3,6,1,2,1,11,6,0 });
  public static final OID oidSnmpInTooBigs = 
    new OID(new int[] { 1,3,6,1,2,1,11,8,0 });
  public static final OID oidSnmpInNoSuchNames = 
    new OID(new int[] { 1,3,6,1,2,1,11,9,0 });
  public static final OID oidSnmpInBadValues = 
    new OID(new int[] { 1,3,6,1,2,1,11,10,0 });
  public static final OID oidSnmpInReadOnlys = 
    new OID(new int[] { 1,3,6,1,2,1,11,11,0 });
  public static final OID oidSnmpInGenErrs = 
    new OID(new int[] { 1,3,6,1,2,1,11,12,0 });
  public static final OID oidSnmpInTotalReqVars = 
    new OID(new int[] { 1,3,6,1,2,1,11,13,0 });
  public static final OID oidSnmpInTotalSetVars = 
    new OID(new int[] { 1,3,6,1,2,1,11,14,0 });
  public static final OID oidSnmpInGetRequests = 
    new OID(new int[] { 1,3,6,1,2,1,11,15,0 });
  public static final OID oidSnmpInGetNexts = 
    new OID(new int[] { 1,3,6,1,2,1,11,16,0 });
  public static final OID oidSnmpInSetRequests = 
    new OID(new int[] { 1,3,6,1,2,1,11,17,0 });
  public static final OID oidSnmpInGetResponses = 
    new OID(new int[] { 1,3,6,1,2,1,11,18,0 });
  public static final OID oidSnmpInTraps = 
    new OID(new int[] { 1,3,6,1,2,1,11,19,0 });
  public static final OID oidSnmpOutTooBigs = 
    new OID(new int[] { 1,3,6,1,2,1,11,20,0 });
  public static final OID oidSnmpOutNoSuchNames = 
    new OID(new int[] { 1,3,6,1,2,1,11,21,0 });
  public static final OID oidSnmpOutBadValues = 
    new OID(new int[] { 1,3,6,1,2,1,11,22,0 });
  public static final OID oidSnmpOutGenErrs = 
    new OID(new int[] { 1,3,6,1,2,1,11,24,0 });
  public static final OID oidSnmpOutGetRequests = 
    new OID(new int[] { 1,3,6,1,2,1,11,25,0 });
  public static final OID oidSnmpOutGetNexts = 
    new OID(new int[] { 1,3,6,1,2,1,11,26,0 });
  public static final OID oidSnmpOutSetRequests = 
    new OID(new int[] { 1,3,6,1,2,1,11,27,0 });
  public static final OID oidSnmpOutGetResponses = 
    new OID(new int[] { 1,3,6,1,2,1,11,28,0 });
  public static final OID oidSnmpOutTraps = 
    new OID(new int[] { 1,3,6,1,2,1,11,29,0 });
  public static final OID oidSnmpEnableAuthenTraps = 
    new OID(new int[] { 1,3,6,1,2,1,11,30,0 });
  public static final OID oidSnmpSilentDrops = 
    new OID(new int[] { 1,3,6,1,2,1,11,31,0 });
  public static final OID oidSnmpProxyDrops = 
    new OID(new int[] { 1,3,6,1,2,1,11,32,0 });
  public static final OID oidSnmpSetSerialNo = 
    new OID(new int[] { 1,3,6,1,6,3,1,1,6,1,0 });
  // Tables

  // Notifications
  public static final OID oidColdStart =
    new OID(new int[] { 1,3,6,1,6,3,1,1,5,1 });   

  public static final OID oidWarmStart =
    new OID(new int[] { 1,3,6,1,6,3,1,1,5,2 });   

  public static final OID oidAuthenticationFailure =
    new OID(new int[] { 1,3,6,1,6,3,1,1,5,5 });   


  // Enumerations
  public static final class SnmpEnableAuthenTrapsEnum {
    public static final int enabled = 1;
    public static final int disabled = 2;
  }




  // TextualConventions
  private static final String TC_MODULE_SNMPV2_TC = "SNMPv2-TC";
  private static final String TC_TIMESTAMP = "TimeStamp";
  private static final String TC_TESTANDINCR = "TestAndIncr";
  private static final String TC_DISPLAYSTRING = "DisplayString";

  // Scalars
  private MOScalar<OctetString> sysDescr;
  private MOScalar<OID> sysObjectID;
  private MOScalar<TimeTicks> sysUpTime;
  private MOScalar<OctetString> sysContact;
  private MOScalar<OctetString> sysName;
  private MOScalar<OctetString> sysLocation;
  private MOScalar<Integer32> sysServices;
  private MOScalar<TimeTicks> sysORLastChange;
  private MOScalar<Counter32> snmpInPkts;
  private MOScalar<Counter32> snmpOutPkts;
  private MOScalar<Counter32> snmpInBadVersions;
  private MOScalar<Counter32> snmpInBadCommunityNames;
  private MOScalar<Counter32> snmpInBadCommunityUses;
  private MOScalar<Counter32> snmpInASNParseErrs;
  private MOScalar<Counter32> snmpInTooBigs;
  private MOScalar<Counter32> snmpInNoSuchNames;
  private MOScalar<Counter32> snmpInBadValues;
  private MOScalar<Counter32> snmpInReadOnlys;
  private MOScalar<Counter32> snmpInGenErrs;
  private MOScalar<Counter32> snmpInTotalReqVars;
  private MOScalar<Counter32> snmpInTotalSetVars;
  private MOScalar<Counter32> snmpInGetRequests;
  private MOScalar<Counter32> snmpInGetNexts;
  private MOScalar<Counter32> snmpInSetRequests;
  private MOScalar<Counter32> snmpInGetResponses;
  private MOScalar<Counter32> snmpInTraps;
  private MOScalar<Counter32> snmpOutTooBigs;
  private MOScalar<Counter32> snmpOutNoSuchNames;
  private MOScalar<Counter32> snmpOutBadValues;
  private MOScalar<Counter32> snmpOutGenErrs;
  private MOScalar<Counter32> snmpOutGetRequests;
  private MOScalar<Counter32> snmpOutGetNexts;
  private MOScalar<Counter32> snmpOutSetRequests;
  private MOScalar<Counter32> snmpOutGetResponses;
  private MOScalar<Counter32> snmpOutTraps;
  private MOScalar<Integer32> snmpEnableAuthenTraps;
  private MOScalar<Counter32> snmpSilentDrops;
  private MOScalar<Counter32> snmpProxyDrops;
  private MOScalar<Integer32> snmpSetSerialNo;

  // Tables
  public static final OID oidSysOREntry = 
    new OID(new int[] { 1,3,6,1,2,1,1,9,1 });

  // Index OID definitions
  public static final OID oidSysORIndex =
    new OID(new int[] { 1,3,6,1,2,1,1,9,1,1 });

  // Column TC definitions for sysOREntry:
  public static final String tcModuleSNMPv2Tc = "SNMPv2-TC";
  public static final String tcDefDisplayString = "DisplayString";
  public static final String tcDefTimeStamp = "TimeStamp";
    
  // Column sub-identifer definitions for sysOREntry:
  public static final int colSysORID = 2;
  public static final int colSysORDescr = 3;
  public static final int colSysORUpTime = 4;

  // Column index definitions for sysOREntry:
  public static final int idxSysORID = 0;
  public static final int idxSysORDescr = 1;
  public static final int idxSysORUpTime = 2;

  private MOTableSubIndex[] sysOREntryIndexes;
  private MOTableIndex sysOREntryIndex;
  
  private MOTable<SysOREntryRow,
                  MOColumn,
                  MOTableModel<SysOREntryRow>> sysOREntry;
  private MOTableModel<SysOREntryRow> sysOREntryModel;


//--AgentGen BEGIN=_MEMBERS
//--AgentGen END

  /**
   * Constructs a SNMPv2Mib instance without actually creating its
   * <code>ManagedObject</code> instances. This has to be done in a
   * sub-class constructor or after construction by calling 
   * {@link #createMO(MOFactory moFactory)}. 
   */
  protected SNMPv2Mib() {
//--AgentGen BEGIN=_DEFAULTCONSTRUCTOR
//--AgentGen END
  }

  /**
   * Constructs a SNMPv2Mib instance and actually creates its
   * <code>ManagedObject</code> instances using the supplied 
   * <code>MOFactory</code> (by calling
   * {@link #createMO(MOFactory moFactory)}).
   * @param moFactory
   *    the <code>MOFactory</code> to be used to create the
   *    managed objects for this module.
   */
  public SNMPv2Mib(MOFactory moFactory) {
  	this();
    createMO(moFactory);
//--AgentGen BEGIN=_FACTORYCONSTRUCTOR
//--AgentGen END
  }

//--AgentGen BEGIN=_CONSTRUCTORS
//--AgentGen END

  /**
   * Create the ManagedObjects defined for this MIB module
   * using the specified {@link MOFactory}.
   * @param moFactory
   *    the <code>MOFactory</code> instance to use for object 
   *    creation.
   */
  protected void createMO(MOFactory moFactory) {
    addTCsToFactory(moFactory);
    sysDescr = 
      moFactory.createScalar(oidSysDescr,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             null,
                             TC_MODULE_SNMPV2_TC, TC_DISPLAYSTRING);
    sysObjectID = 
      moFactory.createScalar(oidSysObjectID,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new OID());
    sysUpTime = 
      moFactory.createScalar(oidSysUpTime,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new TimeTicks());
    sysContact = 
      new SysContact(oidSysContact, 
                     moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE));
    sysContact.addMOValueValidationListener(new SysContactValidator());
    sysName = 
      new SysName(oidSysName, 
                  moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE));
    sysName.addMOValueValidationListener(new SysNameValidator());
    sysLocation = 
      new SysLocation(oidSysLocation, 
                      moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE));
    sysLocation.addMOValueValidationListener(new SysLocationValidator());
    sysServices = 
      moFactory.createScalar(oidSysServices,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Integer32());
    sysORLastChange = 
      moFactory.createScalar(oidSysORLastChange,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             null,
                             TC_MODULE_SNMPV2_TC, TC_TIMESTAMP);
    snmpInPkts = 
      moFactory.createScalar(oidSnmpInPkts,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpOutPkts = 
      moFactory.createScalar(oidSnmpOutPkts,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInBadVersions = 
      moFactory.createScalar(oidSnmpInBadVersions,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInBadCommunityNames = 
      moFactory.createScalar(oidSnmpInBadCommunityNames,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInBadCommunityUses = 
      moFactory.createScalar(oidSnmpInBadCommunityUses,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInASNParseErrs = 
      moFactory.createScalar(oidSnmpInASNParseErrs,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInTooBigs = 
      moFactory.createScalar(oidSnmpInTooBigs,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInNoSuchNames = 
      moFactory.createScalar(oidSnmpInNoSuchNames,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInBadValues = 
      moFactory.createScalar(oidSnmpInBadValues,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInReadOnlys = 
      moFactory.createScalar(oidSnmpInReadOnlys,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInGenErrs = 
      moFactory.createScalar(oidSnmpInGenErrs,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInTotalReqVars = 
      moFactory.createScalar(oidSnmpInTotalReqVars,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInTotalSetVars = 
      moFactory.createScalar(oidSnmpInTotalSetVars,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInGetRequests = 
      moFactory.createScalar(oidSnmpInGetRequests,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInGetNexts = 
      moFactory.createScalar(oidSnmpInGetNexts,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInSetRequests = 
      moFactory.createScalar(oidSnmpInSetRequests,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInGetResponses = 
      moFactory.createScalar(oidSnmpInGetResponses,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpInTraps = 
      moFactory.createScalar(oidSnmpInTraps,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpOutTooBigs = 
      moFactory.createScalar(oidSnmpOutTooBigs,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpOutNoSuchNames = 
      moFactory.createScalar(oidSnmpOutNoSuchNames,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpOutBadValues = 
      moFactory.createScalar(oidSnmpOutBadValues,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpOutGenErrs = 
      moFactory.createScalar(oidSnmpOutGenErrs,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpOutGetRequests = 
      moFactory.createScalar(oidSnmpOutGetRequests,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpOutGetNexts = 
      moFactory.createScalar(oidSnmpOutGetNexts,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpOutSetRequests = 
      moFactory.createScalar(oidSnmpOutSetRequests,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpOutGetResponses = 
      moFactory.createScalar(oidSnmpOutGetResponses,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpOutTraps = 
      moFactory.createScalar(oidSnmpOutTraps,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpEnableAuthenTraps = 
      new SnmpEnableAuthenTraps(oidSnmpEnableAuthenTraps, 
                                moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE));
    snmpEnableAuthenTraps.addMOValueValidationListener(new SnmpEnableAuthenTrapsValidator());
    snmpSilentDrops = 
      moFactory.createScalar(oidSnmpSilentDrops,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpProxyDrops = 
      moFactory.createScalar(oidSnmpProxyDrops,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY), 
                             new Counter32());
    snmpSetSerialNo = 
      new SnmpSetSerialNo(oidSnmpSetSerialNo, 
                          moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_WRITE));
    snmpSetSerialNo.addMOValueValidationListener(new SnmpSetSerialNoValidator());
    createSysOREntry(moFactory);
  }

  public MOScalar<OctetString> getSysDescr() {
    return sysDescr;
  }
  public MOScalar<OID> getSysObjectID() {
    return sysObjectID;
  }
  public MOScalar<TimeTicks> getSysUpTime() {
    return sysUpTime;
  }
  public MOScalar<OctetString> getSysContact() {
    return sysContact;
  }
  public MOScalar<OctetString> getSysName() {
    return sysName;
  }
  public MOScalar<OctetString> getSysLocation() {
    return sysLocation;
  }
  public MOScalar<Integer32> getSysServices() {
    return sysServices;
  }
  public MOScalar<TimeTicks> getSysORLastChange() {
    return sysORLastChange;
  }
  public MOScalar<Counter32> getSnmpInPkts() {
    return snmpInPkts;
  }
  public MOScalar<Counter32> getSnmpOutPkts() {
    return snmpOutPkts;
  }
  public MOScalar<Counter32> getSnmpInBadVersions() {
    return snmpInBadVersions;
  }
  public MOScalar<Counter32> getSnmpInBadCommunityNames() {
    return snmpInBadCommunityNames;
  }
  public MOScalar<Counter32> getSnmpInBadCommunityUses() {
    return snmpInBadCommunityUses;
  }
  public MOScalar<Counter32> getSnmpInASNParseErrs() {
    return snmpInASNParseErrs;
  }
  public MOScalar<Counter32> getSnmpInTooBigs() {
    return snmpInTooBigs;
  }
  public MOScalar<Counter32> getSnmpInNoSuchNames() {
    return snmpInNoSuchNames;
  }
  public MOScalar<Counter32> getSnmpInBadValues() {
    return snmpInBadValues;
  }
  public MOScalar<Counter32> getSnmpInReadOnlys() {
    return snmpInReadOnlys;
  }
  public MOScalar<Counter32> getSnmpInGenErrs() {
    return snmpInGenErrs;
  }
  public MOScalar<Counter32> getSnmpInTotalReqVars() {
    return snmpInTotalReqVars;
  }
  public MOScalar<Counter32> getSnmpInTotalSetVars() {
    return snmpInTotalSetVars;
  }
  public MOScalar<Counter32> getSnmpInGetRequests() {
    return snmpInGetRequests;
  }
  public MOScalar<Counter32> getSnmpInGetNexts() {
    return snmpInGetNexts;
  }
  public MOScalar<Counter32> getSnmpInSetRequests() {
    return snmpInSetRequests;
  }
  public MOScalar<Counter32> getSnmpInGetResponses() {
    return snmpInGetResponses;
  }
  public MOScalar<Counter32> getSnmpInTraps() {
    return snmpInTraps;
  }
  public MOScalar<Counter32> getSnmpOutTooBigs() {
    return snmpOutTooBigs;
  }
  public MOScalar<Counter32> getSnmpOutNoSuchNames() {
    return snmpOutNoSuchNames;
  }
  public MOScalar<Counter32> getSnmpOutBadValues() {
    return snmpOutBadValues;
  }
  public MOScalar<Counter32> getSnmpOutGenErrs() {
    return snmpOutGenErrs;
  }
  public MOScalar<Counter32> getSnmpOutGetRequests() {
    return snmpOutGetRequests;
  }
  public MOScalar<Counter32> getSnmpOutGetNexts() {
    return snmpOutGetNexts;
  }
  public MOScalar<Counter32> getSnmpOutSetRequests() {
    return snmpOutSetRequests;
  }
  public MOScalar<Counter32> getSnmpOutGetResponses() {
    return snmpOutGetResponses;
  }
  public MOScalar<Counter32> getSnmpOutTraps() {
    return snmpOutTraps;
  }
  public MOScalar<Integer32> getSnmpEnableAuthenTraps() {
    return snmpEnableAuthenTraps;
  }
  public MOScalar<Counter32> getSnmpSilentDrops() {
    return snmpSilentDrops;
  }
  public MOScalar<Counter32> getSnmpProxyDrops() {
    return snmpProxyDrops;
  }
  public MOScalar<Integer32> getSnmpSetSerialNo() {
    return snmpSetSerialNo;
  }


  public MOTable<SysOREntryRow,MOColumn,MOTableModel<SysOREntryRow>> getSysOREntry() {
    return sysOREntry;
  }


  @SuppressWarnings(value={"unchecked"})
  private void createSysOREntry(MOFactory moFactory) {
    // Index definition
    sysOREntryIndexes = 
      new MOTableSubIndex[] {
      moFactory.createSubIndex(oidSysORIndex, 
                               SMIConstants.SYNTAX_INTEGER, 1, 1)    };

    sysOREntryIndex = 
      moFactory.createIndex(sysOREntryIndexes,
                            false,
                            new MOTableIndexValidator() {
      public boolean isValidIndex(OID index) {
        boolean isValidIndex = true;
     //--AgentGen BEGIN=sysOREntry::isValidIndex
     //--AgentGen END
        return isValidIndex;
      }
    });

    // Columns
    MOColumn[] sysOREntryColumns = new MOColumn[3];
    sysOREntryColumns[idxSysORID] = 
      moFactory.createColumn(colSysORID, 
                             SMIConstants.SYNTAX_OBJECT_IDENTIFIER,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY));
    sysOREntryColumns[idxSysORDescr] = 
      moFactory.createColumn(colSysORDescr, 
                             SMIConstants.SYNTAX_OCTET_STRING,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY),
                             tcModuleSNMPv2Tc,
                             tcDefDisplayString);
    sysOREntryColumns[idxSysORUpTime] = 
      moFactory.createColumn(colSysORUpTime, 
                             SMIConstants.SYNTAX_TIMETICKS,
                             moFactory.createAccess(MOAccessImpl.ACCESSIBLE_FOR_READ_ONLY),
                             tcModuleSNMPv2Tc,
                             tcDefTimeStamp);
    // Table model
    sysOREntryModel = 
      moFactory.createTableModel(oidSysOREntry,
                                 sysOREntryIndex,
                                 sysOREntryColumns);
    ((MOMutableTableModel<SysOREntryRow>)sysOREntryModel).setRowFactory(
      new SysOREntryRowFactory());
    sysOREntry = 
      moFactory.createTable(oidSysOREntry,
                            sysOREntryIndex,
                            sysOREntryColumns,
                            sysOREntryModel);
  }



  public void registerMOs(MOServer server, OctetString context) 
    throws DuplicateRegistrationException 
  {
    // Scalar Objects
    server.register(this.sysDescr, context);
    server.register(this.sysObjectID, context);
    server.register(this.sysUpTime, context);
    server.register(this.sysContact, context);
    server.register(this.sysName, context);
    server.register(this.sysLocation, context);
    server.register(this.sysServices, context);
    server.register(this.sysORLastChange, context);
    server.register(this.snmpInPkts, context);
    server.register(this.snmpOutPkts, context);
    server.register(this.snmpInBadVersions, context);
    server.register(this.snmpInBadCommunityNames, context);
    server.register(this.snmpInBadCommunityUses, context);
    server.register(this.snmpInASNParseErrs, context);
    server.register(this.snmpInTooBigs, context);
    server.register(this.snmpInNoSuchNames, context);
    server.register(this.snmpInBadValues, context);
    server.register(this.snmpInReadOnlys, context);
    server.register(this.snmpInGenErrs, context);
    server.register(this.snmpInTotalReqVars, context);
    server.register(this.snmpInTotalSetVars, context);
    server.register(this.snmpInGetRequests, context);
    server.register(this.snmpInGetNexts, context);
    server.register(this.snmpInSetRequests, context);
    server.register(this.snmpInGetResponses, context);
    server.register(this.snmpInTraps, context);
    server.register(this.snmpOutTooBigs, context);
    server.register(this.snmpOutNoSuchNames, context);
    server.register(this.snmpOutBadValues, context);
    server.register(this.snmpOutGenErrs, context);
    server.register(this.snmpOutGetRequests, context);
    server.register(this.snmpOutGetNexts, context);
    server.register(this.snmpOutSetRequests, context);
    server.register(this.snmpOutGetResponses, context);
    server.register(this.snmpOutTraps, context);
    server.register(this.snmpEnableAuthenTraps, context);
    server.register(this.snmpSilentDrops, context);
    server.register(this.snmpProxyDrops, context);
    server.register(this.snmpSetSerialNo, context);
    server.register(this.sysOREntry, context);
//--AgentGen BEGIN=_registerMOs
//--AgentGen END
  }

  public void unregisterMOs(MOServer server, OctetString context) {
    // Scalar Objects
    server.unregister(this.sysDescr, context);
    server.unregister(this.sysObjectID, context);
    server.unregister(this.sysUpTime, context);
    server.unregister(this.sysContact, context);
    server.unregister(this.sysName, context);
    server.unregister(this.sysLocation, context);
    server.unregister(this.sysServices, context);
    server.unregister(this.sysORLastChange, context);
    server.unregister(this.snmpInPkts, context);
    server.unregister(this.snmpOutPkts, context);
    server.unregister(this.snmpInBadVersions, context);
    server.unregister(this.snmpInBadCommunityNames, context);
    server.unregister(this.snmpInBadCommunityUses, context);
    server.unregister(this.snmpInASNParseErrs, context);
    server.unregister(this.snmpInTooBigs, context);
    server.unregister(this.snmpInNoSuchNames, context);
    server.unregister(this.snmpInBadValues, context);
    server.unregister(this.snmpInReadOnlys, context);
    server.unregister(this.snmpInGenErrs, context);
    server.unregister(this.snmpInTotalReqVars, context);
    server.unregister(this.snmpInTotalSetVars, context);
    server.unregister(this.snmpInGetRequests, context);
    server.unregister(this.snmpInGetNexts, context);
    server.unregister(this.snmpInSetRequests, context);
    server.unregister(this.snmpInGetResponses, context);
    server.unregister(this.snmpInTraps, context);
    server.unregister(this.snmpOutTooBigs, context);
    server.unregister(this.snmpOutNoSuchNames, context);
    server.unregister(this.snmpOutBadValues, context);
    server.unregister(this.snmpOutGenErrs, context);
    server.unregister(this.snmpOutGetRequests, context);
    server.unregister(this.snmpOutGetNexts, context);
    server.unregister(this.snmpOutSetRequests, context);
    server.unregister(this.snmpOutGetResponses, context);
    server.unregister(this.snmpOutTraps, context);
    server.unregister(this.snmpEnableAuthenTraps, context);
    server.unregister(this.snmpSilentDrops, context);
    server.unregister(this.snmpProxyDrops, context);
    server.unregister(this.snmpSetSerialNo, context);
    server.unregister(this.sysOREntry, context);
//--AgentGen BEGIN=_unregisterMOs
//--AgentGen END
  }

  // Notifications
  public void coldStart(NotificationOriginator notificationOriginator,
                        OctetString context, VariableBinding[] vbs) {
    notificationOriginator.notify(context, oidColdStart, vbs);
  }

  public void warmStart(NotificationOriginator notificationOriginator,
                        OctetString context, VariableBinding[] vbs) {
    notificationOriginator.notify(context, oidWarmStart, vbs);
  }

  public void authenticationFailure(NotificationOriginator notificationOriginator,
                                    OctetString context, VariableBinding[] vbs) {
    notificationOriginator.notify(context, oidAuthenticationFailure, vbs);
  }


  // Scalars
  public class SysContact extends DisplayStringScalar<OctetString> {
    SysContact(OID oid, MOAccess access) {
      super(oid, access, new OctetString(),
            0, 
            255);
//--AgentGen BEGIN=sysContact
//--AgentGen END
    }

    public int isValueOK(SubRequest request) {
      Variable newValue =
        request.getVariableBinding().getVariable();
      int valueOK = super.isValueOK(request);
      if (valueOK != SnmpConstants.SNMP_ERROR_SUCCESS) {
      	return valueOK;
      }
      OctetString os = (OctetString)newValue;
      if (!(((os.length() >= 0) && (os.length() <= 255)))) {
        valueOK = SnmpConstants.SNMP_ERROR_WRONG_LENGTH;
      }
     //--AgentGen BEGIN=sysContact::isValueOK
     //--AgentGen END
      return valueOK; 
    }

    public OctetString getValue() {
     //--AgentGen BEGIN=sysContact::getValue
     //--AgentGen END
      return super.getValue();    
    }

    public int setValue(OctetString newValue) {
     //--AgentGen BEGIN=sysContact::setValue
     //--AgentGen END
      return super.setValue(newValue);    
    }

     //--AgentGen BEGIN=sysContact::_METHODS
     //--AgentGen END

  }

  public class SysName extends DisplayStringScalar<OctetString> {
    SysName(OID oid, MOAccess access) {
      super(oid, access, new OctetString(),
            0, 
            255);
//--AgentGen BEGIN=sysName
//--AgentGen END
    }

    public int isValueOK(SubRequest request) {
      Variable newValue =
        request.getVariableBinding().getVariable();
      int valueOK = super.isValueOK(request);
      if (valueOK != SnmpConstants.SNMP_ERROR_SUCCESS) {
      	return valueOK;
      }
      OctetString os = (OctetString)newValue;
      if (!(((os.length() >= 0) && (os.length() <= 255)))) {
        valueOK = SnmpConstants.SNMP_ERROR_WRONG_LENGTH;
      }
     //--AgentGen BEGIN=sysName::isValueOK
     //--AgentGen END
      return valueOK; 
    }

    public OctetString getValue() {
     //--AgentGen BEGIN=sysName::getValue
     //--AgentGen END
      return super.getValue();    
    }

    public int setValue(OctetString newValue) {
     //--AgentGen BEGIN=sysName::setValue
     //--AgentGen END
      return super.setValue(newValue);    
    }

     //--AgentGen BEGIN=sysName::_METHODS
     //--AgentGen END

  }

  public class SysLocation extends DisplayStringScalar<OctetString> {
    SysLocation(OID oid, MOAccess access) {
      super(oid, access, new OctetString(),
            0, 
            255);
//--AgentGen BEGIN=sysLocation
//--AgentGen END
    }

    public int isValueOK(SubRequest request) {
      Variable newValue =
        request.getVariableBinding().getVariable();
      int valueOK = super.isValueOK(request);
      if (valueOK != SnmpConstants.SNMP_ERROR_SUCCESS) {
      	return valueOK;
      }
      OctetString os = (OctetString)newValue;
      if (!(((os.length() >= 0) && (os.length() <= 255)))) {
        valueOK = SnmpConstants.SNMP_ERROR_WRONG_LENGTH;
      }
     //--AgentGen BEGIN=sysLocation::isValueOK
     //--AgentGen END
      return valueOK; 
    }

    public OctetString getValue() {
     //--AgentGen BEGIN=sysLocation::getValue
     //--AgentGen END
      return super.getValue();    
    }

    public int setValue(OctetString newValue) {
     //--AgentGen BEGIN=sysLocation::setValue
     //--AgentGen END
      return super.setValue(newValue);    
    }

     //--AgentGen BEGIN=sysLocation::_METHODS
     //--AgentGen END

  }

  public class SnmpEnableAuthenTraps extends EnumeratedScalar<Integer32> {
    SnmpEnableAuthenTraps(OID oid, MOAccess access) {
      super(oid, access, new Integer32(),
            new int[] { SnmpEnableAuthenTrapsEnum.enabled,
                        SnmpEnableAuthenTrapsEnum.disabled });
//--AgentGen BEGIN=snmpEnableAuthenTraps
//--AgentGen END
    }

    public int isValueOK(SubRequest request) {
      Variable newValue =
        request.getVariableBinding().getVariable();
      int valueOK = super.isValueOK(request);
      if (valueOK != SnmpConstants.SNMP_ERROR_SUCCESS) {
      	return valueOK;
      }
     //--AgentGen BEGIN=snmpEnableAuthenTraps::isValueOK
     //--AgentGen END
      return valueOK; 
    }

    public Integer32 getValue() {
     //--AgentGen BEGIN=snmpEnableAuthenTraps::getValue
     //--AgentGen END
      return super.getValue();    
    }

    public int setValue(Integer32 newValue) {
     //--AgentGen BEGIN=snmpEnableAuthenTraps::setValue
     //--AgentGen END
      return super.setValue(newValue);    
    }

     //--AgentGen BEGIN=snmpEnableAuthenTraps::_METHODS
     //--AgentGen END

  }

  public class SnmpSetSerialNo extends MOScalar<Integer32> {
    SnmpSetSerialNo(OID oid, MOAccess access) {
      super(oid, access, new Integer32());
//--AgentGen BEGIN=snmpSetSerialNo
//--AgentGen END
    }

    public int isValueOK(SubRequest request) {
      Variable newValue =
        request.getVariableBinding().getVariable();
      int valueOK = super.isValueOK(request);
      if (valueOK != SnmpConstants.SNMP_ERROR_SUCCESS) {
      	return valueOK;
      }
      long v = ((Integer32)newValue).getValue();
      if (!(((v >= 0L) && (v <= 2147483647L)))) {
        valueOK = SnmpConstants.SNMP_ERROR_WRONG_VALUE;
      }    
     //--AgentGen BEGIN=snmpSetSerialNo::isValueOK
     //--AgentGen END
      return valueOK; 
    }

    public Integer32 getValue() {
     //--AgentGen BEGIN=snmpSetSerialNo::getValue
     //--AgentGen END
      return super.getValue();    
    }

    public int setValue(Integer32 newValue) {
     //--AgentGen BEGIN=snmpSetSerialNo::setValue
     //--AgentGen END
      return super.setValue(newValue);    
    }

     //--AgentGen BEGIN=snmpSetSerialNo::_METHODS
     //--AgentGen END

  }


  // Value Validators
  /**
   * The <code>SysContactValidator</code> implements the value
   * validation for <code>SysContact</code>.
   */
  static class SysContactValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      OctetString os = (OctetString)newValue;
      if (!(((os.length() >= 0) && (os.length() <= 255)))) {
        validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_LENGTH);
        return;
      }
     //--AgentGen BEGIN=sysContact::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>SysNameValidator</code> implements the value
   * validation for <code>SysName</code>.
   */
  static class SysNameValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      OctetString os = (OctetString)newValue;
      if (!(((os.length() >= 0) && (os.length() <= 255)))) {
        validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_LENGTH);
        return;
      }
     //--AgentGen BEGIN=sysName::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>SysLocationValidator</code> implements the value
   * validation for <code>SysLocation</code>.
   */
  static class SysLocationValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      OctetString os = (OctetString)newValue;
      if (!(((os.length() >= 0) && (os.length() <= 255)))) {
        validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_LENGTH);
        return;
      }
     //--AgentGen BEGIN=sysLocation::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>SnmpEnableAuthenTrapsValidator</code> implements the value
   * validation for <code>SnmpEnableAuthenTraps</code>.
   */
  static class SnmpEnableAuthenTrapsValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
     //--AgentGen BEGIN=snmpEnableAuthenTraps::validate
     //--AgentGen END
    }
  }
  /**
   * The <code>SnmpSetSerialNoValidator</code> implements the value
   * validation for <code>SnmpSetSerialNo</code>.
   */
  static class SnmpSetSerialNoValidator implements MOValueValidationListener {
    
    public void validate(MOValueValidationEvent validationEvent) {
      Variable newValue = validationEvent.getNewValue();
      long v = ((Integer32)newValue).getValue();
      if (!(((v >= 0L) && (v <= 2147483647L)))) {
        validationEvent.setValidationStatus(SnmpConstants.SNMP_ERROR_WRONG_VALUE);
        return;
      }
     //--AgentGen BEGIN=snmpSetSerialNo::validate
     //--AgentGen END
    }
  }


  // Rows and Factories

  public class SysOREntryRow extends DefaultMOMutableRow2PC {

     //--AgentGen BEGIN=sysOREntry::RowMembers
     //--AgentGen END

    public SysOREntryRow(OID index, Variable[] values) {
      super(index, values);
     //--AgentGen BEGIN=sysOREntry::RowConstructor
     //--AgentGen END
    }
    
    public OID getSysORID() {
     //--AgentGen BEGIN=sysOREntry::getSysORID
     //--AgentGen END
      return (OID) super.getValue(idxSysORID);
    }  
    
    public void setSysORID(OID newValue) {
     //--AgentGen BEGIN=sysOREntry::setSysORID
     //--AgentGen END
      super.setValue(idxSysORID, newValue);
    }
    
    public OctetString getSysORDescr() {
     //--AgentGen BEGIN=sysOREntry::getSysORDescr
     //--AgentGen END
      return (OctetString) super.getValue(idxSysORDescr);
    }  
    
    public void setSysORDescr(OctetString newValue) {
     //--AgentGen BEGIN=sysOREntry::setSysORDescr
     //--AgentGen END
      super.setValue(idxSysORDescr, newValue);
    }
    
    public TimeTicks getSysORUpTime() {
     //--AgentGen BEGIN=sysOREntry::getSysORUpTime
     //--AgentGen END
      return (TimeTicks) super.getValue(idxSysORUpTime);
    }  
    
    public void setSysORUpTime(TimeTicks newValue) {
     //--AgentGen BEGIN=sysOREntry::setSysORUpTime
     //--AgentGen END
      super.setValue(idxSysORUpTime, newValue);
    }
    
    public Variable getValue(int column) {
     //--AgentGen BEGIN=sysOREntry::RowGetValue
     //--AgentGen END
      switch(column) {
        case idxSysORID: 
        	return getSysORID();
        case idxSysORDescr: 
        	return getSysORDescr();
        case idxSysORUpTime: 
        	return getSysORUpTime();
        default:
          return super.getValue(column);
      }
    }
    
    public void setValue(int column, Variable value) {
     //--AgentGen BEGIN=sysOREntry::RowSetValue
     //--AgentGen END
      switch(column) {
        case idxSysORID: 
        	setSysORID((OID)value);
        	break;
        case idxSysORDescr: 
        	setSysORDescr((OctetString)value);
        	break;
        case idxSysORUpTime: 
        	setSysORUpTime((TimeTicks)value);
        	break;
        default:
          super.setValue(column, value);
      }
    }

     //--AgentGen BEGIN=sysOREntry::Row
     //--AgentGen END
  }
  
  class SysOREntryRowFactory 
        extends DefaultMOMutableRow2PCFactory<SysOREntryRow>
  {
    public synchronized SysOREntryRow createRow(OID index, Variable[] values)
        throws UnsupportedOperationException 
    {
      SysOREntryRow row = 
        new SysOREntryRow(index, values);
     //--AgentGen BEGIN=sysOREntry::createRow
     //--AgentGen END
      return row;
    }
    
    public synchronized void freeRow(SysOREntryRow row) {
     //--AgentGen BEGIN=sysOREntry::freeRow
     //--AgentGen END
    }

     //--AgentGen BEGIN=sysOREntry::RowFactory
     //--AgentGen END
  }


//--AgentGen BEGIN=_METHODS
//--AgentGen END

  // Textual Definitions of MIB module SNMPv2Mib
  protected void addTCsToFactory(MOFactory moFactory) {
  }


//--AgentGen BEGIN=_TC_CLASSES_IMPORTED_MODULES_BEGIN
//--AgentGen END

  // Textual Definitions of other MIB modules
  public void addImportedTCsToFactory(MOFactory moFactory) {
  }


//--AgentGen BEGIN=_TC_CLASSES_IMPORTED_MODULES_END
//--AgentGen END

//--AgentGen BEGIN=_CLASSES
//--AgentGen END

//--AgentGen BEGIN=_END
//--AgentGen END
}


